package com.cool4j.generator.db

import com.cool4j.generator.entity.Column
import com.cool4j.generator.entity.Table

import java.sql.Connection

/**
 * 数据库连接接口
 *
 * @author Frank create on 16/1/7 10:25
 */
interface DatabaseConnection {

    /**
     * 获取数据库连接
     *
     * @param user - 数据库用户名
     * @param password - 数据库用户密码
     * @param driver - 数据库驱动
     * @param url - 数据库地址
     * @return - 数据库连接
     * @throws Exception - 数据库连接异常
     */
    Connection getConnection(String user, String password, String driver, String url) throws Exception

    /**
     * 获取数据库字段信息列表
     *
     * @param conn - 数据库连接
     * @param tableName - 表名
     * @param user - 数据库用户名
     * @return - 字段信息列表
     * @throws Exception - 数据库访问异常
     */
    List<Column> getColumnList(conn, tableName, user) throws Exception

    /**
     * 获取数据库表信息
     *
     * @param conn - 数据库连接
     * @param tableName - 表名
     * @return - 数据库表信息
     * @throws Exception - 数据库访问异常
     */
    Table getTable(conn, tableName) throws Exception

}
